package cn.zzz.openplatform.txlbs.model.weather;

import cn.zzz.openplatform.txlbs.model.TxlbsOpenApiResponse;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.util.List;

/**
 * 腾讯位置服务 未来天气 响应参数
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString(callSuper = true)
public class TxlbsWeatherFutureResponse extends TxlbsOpenApiResponse {
    private TxlbsWeatherFutureResult result;

    /**
     * 预报天气信息数组
     */
    @Data
    public static class TxlbsWeatherFutureResult {
        private List<ForecastItem> forecast;
    }

    /**
     * 预报天气信息项
     */
    @Data
    public static class ForecastItem {
        /**
         * 省份
         */
        private String province;

        /**
         * 市
         */
        private String city;

        /**
         * 区县
         */
        private String district;

        /**
         * 区划编码
         */
        private Integer adcode;

        /**
         * 更新时间
         */
        private String update_time;

        /**
         * 天气信息数组
         */
        private List<ForecastInfo> infos;
    }

    /**
     * 预报天气信息
     */
    @Data
    public static class ForecastInfo {
        /**
         * 日期（如：2024-08-16）
         */
        private String date;

        /**
         * 星期（如：星期五）
         */
        private String week;

        /**
         * 白天天气信息
         */
        private TxlbsWeatherInfo day;

        /**
         * 夜晚天气信息
         */
        private TxlbsWeatherInfo night;
    }

    /**
     * 天气信息
     */
    @Data
    public static class TxlbsWeatherInfo {
        /**
         * 天气描述（如：阴）
         */
        private String weather;

        /**
         * 温度（摄氏度）
         */
        private Double temperature;

        /**
         * 风向描述（如：东北风）
         */
        private String wind_direction;

        /** 风力描述（如：4-5级） */
        private String wind_power;

        /** 湿度（百分比） */
        private Double humidity;
    }
}

